package com.battery.system.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.battery.common.annotation.Excel;
import com.battery.common.core.domain.BaseEntity;
import tk.mybatis.mapper.annotation.KeySql;

import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 退款订单对象 ws_refund_order
 *
 * @author battery
 * @date 2021-01-22
 */
@Table(name = "ws_refund_order")
public class RefundOrder {
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @Id
    @KeySql(useGeneratedKeys = true)
    private String id;

    /**
     * 用户ID
     */
    @Excel(name = "用户ID")
    private String appUserId;

    /**
     * 商户退款单号
     */
    @Excel(name = "商户退款单号")
    private String outRefundNo;

    /**
     * 订单金额
     */
    @Excel(name = "订单金额")
    private BigDecimal totalFee;

    /**
     * 退款金额
     */
    @Excel(name = "退款金额")
    private BigDecimal refundFee;

    /**
     * 退款原因
     */
    @Excel(name = "退款原因")
    private String refundDesc;

    /**
     * 微信退款单号
     */
    @Excel(name = "微信退款单号")
    private String refundId;

    /**
     * 退款状态SUCCESS-退款成功 1CHANGE-退款异常 2REFUNDCLOSE—退款关闭 3
     */
    @Excel(name = "退款状态SUCCESS-退款成功 1CHANGE-退款异常 2REFUNDCLOSE—退款关闭 3")
    private Integer refundStatus;

    /**
     * 退款成功时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "退款成功时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date successTime;

    /**
     * 退款入账账户
     */
    @Excel(name = "退款入账账户")
    private String refundRecvAccout;


    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    private String remark;

    private String orderId;

    private Integer orderType;

    private Integer channel;

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Integer getChannel() {
        return channel;
    }

    public void setChannel(Integer channel) {
        this.channel = channel;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setAppUserId(String appUserId) {
        this.appUserId = appUserId;
    }

    public String getAppUserId() {
        return appUserId;
    }

    public void setOutRefundNo(String outRefundNo) {
        this.outRefundNo = outRefundNo;
    }

    public String getOutRefundNo() {
        return outRefundNo;
    }

    public void setTotalFee(BigDecimal totalFee) {
        this.totalFee = totalFee;
    }

    public BigDecimal getTotalFee() {
        return totalFee;
    }

    public void setRefundFee(BigDecimal refundFee) {
        this.refundFee = refundFee;
    }

    public BigDecimal getRefundFee() {
        return refundFee;
    }

    public void setRefundDesc(String refundDesc) {
        this.refundDesc = refundDesc;
    }

    public String getRefundDesc() {
        return refundDesc;
    }

    public void setRefundId(String refundId) {
        this.refundId = refundId;
    }

    public String getRefundId() {
        return refundId;
    }

    public void setRefundStatus(Integer refundStatus) {
        this.refundStatus = refundStatus;
    }

    public Integer getRefundStatus() {
        return refundStatus;
    }

    public void setSuccessTime(Date successTime) {
        this.successTime = successTime;
    }

    public Date getSuccessTime() {
        return successTime;
    }

    public void setRefundRecvAccout(String refundRecvAccout) {
        this.refundRecvAccout = refundRecvAccout;
    }

    public String getRefundRecvAccout() {
        return refundRecvAccout;
    }


    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("appUserId", getAppUserId())
                .append("outRefundNo", getOutRefundNo())
                .append("totalFee", getTotalFee())
                .append("refundFee", getRefundFee())
                .append("refundDesc", getRefundDesc())
                .append("refundId", getRefundId())
                .append("refundStatus", getRefundStatus())
                .append("createTime", getCreateTime())
                .append("successTime", getSuccessTime())
                .append("refundRecvAccout", getRefundRecvAccout())
                .append("remark", getRemark())
                .toString();
    }
}
